﻿//-----------------------------------------------------------------------
// <copyright file="ExpressionDef.cs" company="tuliprules.org">
//     Copyright (c) 2010 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the ExpressionDef class.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Rules.CodeGen.Models.ClosedWorld
{
    using System.Collections.Generic;
    using System.Diagnostics.CodeAnalysis;

    /// <summary>
    /// Expression definition.
    /// </summary>
    [SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate",
    Justification = "Reviewed. Suppression is OK here.")]
    public class ExpressionDef
    {
        /// <summary>
        /// The name of the expression.
        /// </summary>
        public string ExpressionName;

        /// <summary>
        /// The position of the expression.
        /// </summary>
        public int ExpressionPosition;

        /// <summary>
        /// Textual representation of the expression.
        /// </summary>
        public string ExpressionText;

        /// <summary>
        /// Collection of argument definitions.
        /// </summary>
        public IEnumerable<ArgumentDef> ExpressionArguments;
    }
}
